# coding: utf-8

"""
    全局变量和局部变量:
    1.在函数外边定义的变量叫做 全局变量
    2.全局变量能够在所有的函数中进行访问
    3.如果在函数中修改全局变量，那么就需要使用 global 进行声明，否则出错
    4.如果全局变量的名字和局部变量的名字相同，那么使用的是局部变量的，小技巧 强龙不压地头蛇

    globals():获取全局变量函数
    local():获取当前全局变量
"""

num = 10
print(num)
num += 10
print(num)


def func():
    global num  # 如果不用global声明的话，则只能访问，不能修改
    print(num)
    num += 10  # 如果在函数中修改全局变量，那么就需要使用 global 进行声明，否则出错
    print(num)

print(globals())
"""
{
'__name__': '__main__',   # 
'__doc__': '\n    全局变量和局部变量:\n    1.在函数外边定义的变量叫做 全局变量,
'__package__': None, 
'__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001B7E51B3DC0>, 
'__spec__': None, 
'__annotations__': {}, 
'__builtins__': <module 'builtins' (built-in)>, 
'__file__': 'F:/Developer/Python/Python-Projects/Python-Study/07-函数/03-全局变量和局部变量.py', 
'__cached__': None, 
'num': 20, 
'func': <function func at 0x000001B7E51FD1F0>
}
"""